package com.hqd.ch03.v50.context;

import com.hqd.ch03.v50.beans.factory.config.AutowireCapableBeanFactory;
import com.hqd.ch03.v50.core.env.EnvironmentCapable;
import com.hqd.ch03.v50.factory.HierarchicalBeanFactory;
import com.hqd.ch03.v50.factory.ListableBeanFactory;
import com.hqd.ch03.v50.io.support.ResourcePatternResolver;

public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,
        MessageSource, ApplicationEventPublisher, ResourcePatternResolver {

    String getId();

    /**
     * 获取应用名
     */
    String getApplicationName();

    String getDisplayName();

    /**
     * 启动时间
     */
    long getStartupDate();

    /**
     * 获取父容器
     */
    ApplicationContext getParent();

    AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException;

}
